package gsql

import (
	"strings"
)

// todo/ 支持主从/集群等处理/

// 兼容的数据库驱动类型
const (
	MYSQL  = "mysql"
	PGSQL  = "postgres"
	MSSQL  = "mssql"
	ORACLE = "oracle"
)

// 数据库连接配置项
type Options struct {
	Driver   string // 数据库类型
	Addr     string // 数据库地址
	Username string // 账号
	Password string // 密码
	Database string // 数据库名称
	Params   string // 额外的连接参数
}

// 获取Dsn字符串
func (opt *Options) DsnString() string {
	var s strings.Builder

	// 用户名和密码
	s.WriteString(opt.Username)
	if opt.Password != "" {
		s.WriteByte(':')
		s.WriteString(opt.Password)
	}

	// 连接协议
	s.WriteString(opt.Addr)
	s.WriteString("/")
	s.WriteString(opt.Database)

	// 其他参数
	if opt.Params != "" {
		s.WriteString("?")
		s.WriteString(opt.Params)
	}

	return s.String()
}
